package com.company.netty.demo.NIO.bufferDemo;

import java.io.RandomAccessFile;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;


/**
 *
 * 课程：18
 * 说明
 * 1、MappedByteBuffer 可以让文件在内存（堆外内存）中修改，操作系统不需要拷贝一次
 *
 * */

public class MappedByteBufferDemo {


    public static void main(String[] args) throws Exception{

        RandomAccessFile randomAccessFile = new RandomAccessFile("file.txt","rw");

        //通道绑定文件io
        FileChannel channel = randomAccessFile.getChannel();

        /**
         * 参数1：使用的读写模式
         * 2、0：可以直接修改的开始位置
         * 3、10：映射到内存的大小，即文件file。txt的10个字节
         * */
        MappedByteBuffer map = channel.map(FileChannel.MapMode.READ_WRITE, 0, 10);

        map.put(0,(byte) 'a');



        randomAccessFile.close();
    }
}
